/**
 * @param {number[]} nums1
 * @param {number[]} nums2
 * @return {number}
 */
 var findLength = function(nums1, nums2) {
  const m = nums1.length,n = nums2.length;
  let res = 0, maxLen = 0;
  for(let i = 0; i<m; i++) {
    // 数组nums1向左滑动，依次与nums2数组的第一项开始比较
    let len = Math.min(m - i,n);
    // 由于数组nums1向左滑动，两个数组比较的是nums1剩下的长度，因此取得len是m-i
    maxLen = maxLength(nums1,nums2,i,0,len);
    res = Math.max(res,maxLen);
  }
  for(let j =0; j<n; j++) {
    let len = Math.min(m,n - j);
    maxLen = maxLength(nums1,nums2,0,j,len);
    res = Math.max(res,maxLen);
  }
  return res
};

var maxLength = function (nums1,nums2,m,n,len) {
  let res = 0, count = 0;
  for(let i = 0; i<len; i++) {
    if(nums1[m+i] === nums2[n+i]) {
      count++
    } else {
      count = 0;
    }
    res = Math.max(res,count);
  }
  return res;
}

let a = [1,2,3,2,1]
let b = [3,2,1,4,7,8]
console.log(findLength(a,b)); // 3